const express     = require('express');
const app         = express();
const config      = require('./sip_config');
const sip_server  = require('./sip_server');
const log4js= require('./sip_log');
const logger = log4js.getLogger('request');

// 设置express日志
log4js.useLogger(app,logger)

/**
 * 获取要认证的设备，这个方法不需要。如果开放的话注意屏蔽密码信息
 */
// app.get('/api/v1/registry/list', function (req, res) {
//   res.send(config.registry);
// });
/**
 * 获取注册的设备列表
 */
app.get('/api/v1/device/list',function(req,res){
  res.send({'success':true,data:config.devices});
});
/**
 * 请求视频
 */
app.get('/api/v1/device/invite', function (req, res) {
  if(!req.query.account){
    res.send({'success':false,'msg':'参数不正确'});
    return ;
  }
  if(!sip_server.invite(req.query.account)){ //34020000001320000001
    res.send({'success':false,'msg':'未正常连接'});
  }else{
    res.send({'success':true});
  }
});
/**
 * HOOK，给ZL回调使用
 */
app.post('/index/hook/on_stream_changed',function(req,res){
  logger.info(req);
  res.send({'code':0,'msg':'success'});
});
/**
 * 启动 http 服务
 */ 
let server = app.listen(config.http.port, function () {
  let host = server.address().address;
  let port = server.address().port;
  logger.info("启动GB28181_Node_Http服务: http://%s:%s", host, port)
});
/**
 * 启动gb28181服务
 */
sip_server.start();